load("@fbcode_macros//build_defs:rust_library.bzl", "rust_library")
load("@fbsource//tools/build_defs:glob_defs.bzl", "glob")

oncall("buck2")

rust_library(
    name = "buck2_core",
    srcs = glob(
        ["src/**/*.rs"],
    ) + ["src/pattern/target_pattern.md"],
    doctests = False,  # FIXME
    test_deps = [
        "fbsource//third-party/rust:assert_matches",
        "fbsource//third-party/rust:maplit",
        "fbsource//third-party/rust:test-case",
    ],
    deps = [
        "fbsource//third-party/blake3:blake3-rust",
        "fbsource//third-party/rust:anyhow",
        "fbsource//third-party/rust:arc-swap",
        "fbsource//third-party/rust:common-path",
        "fbsource//third-party/rust:compact_str",
        "fbsource//third-party/rust:dashmap",
        "fbsource//third-party/rust:derivative",
        "fbsource//third-party/rust:derive_more",
        "fbsource//third-party/rust:dunce",
        "fbsource//third-party/rust:either",
        "fbsource//third-party/rust:fnv",
        "fbsource//third-party/rust:futures",
        "fbsource//third-party/rust:hashbrown",
        "fbsource//third-party/rust:hostname",
        "fbsource//third-party/rust:itertools",
        "fbsource//third-party/rust:memchr",
        "fbsource//third-party/rust:once_cell",
        "fbsource//third-party/rust:os_str_bytes",
        "fbsource//third-party/rust:pin-project",
        "fbsource//third-party/rust:rand",
        "fbsource//third-party/rust:ref-cast",
        "fbsource//third-party/rust:regex",
        "fbsource//third-party/rust:relative-path",
        "fbsource//third-party/rust:sequence_trie",
        "fbsource//third-party/rust:serde",
        "fbsource//third-party/rust:smallvec",
        "fbsource//third-party/rust:static_assertions",
        "fbsource//third-party/rust:tempfile",
        "fbsource//third-party/rust:thiserror",
        "fbsource//third-party/rust:tokio",
        "fbsource//third-party/rust:tracing",
        "fbsource//third-party/rust:tracing-subscriber",
        "fbsource//third-party/rust:triomphe",
        "//buck2/allocative/allocative:allocative",
        "//buck2/app/buck2_util:buck2_util",
        "//buck2/gazebo/dupe:dupe",
        "//buck2/gazebo/gazebo:gazebo",
        "//buck2/shed/internment_tweaks:internment_tweaks",
        "//buck2/starlark-rust/starlark_map:starlark_map",
        "//common/rust/shed/sorted_vector_map:sorted_vector_map",
    ],
)
